[−][src]Crate ctr
Generic implementation of CTR mode for block cipher with 128-bit block size.
Mode functionality is accessed using traits from re-exported
stream-cipher
crate.
Security Warning
This crate does not ensure ciphertexts are authentic! Thus ciphertext integrity is not verified, which can lead to serious vulnerabilities!
Usage example
use ctr::stream_cipher::generic_array::GenericArray; use ctr::stream_cipher::{ NewStreamCipher, SyncStreamCipher, SyncStreamCipherSeek }; // `aes` crate provides AES block cipher implementation type Aes128Ctr = ctr::Ctr128<aes::Aes128>; let mut data = [1, 2, 3, 4, 5, 6, 7]; let key = GenericArray::from_slice(b"very secret key."); let nonce = GenericArray::from_slice(b"and secret nonce"); // create cipher instance let mut cipher = Aes128Ctr::new(&key, &nonce); // apply keystream (encrypt) cipher.apply_keystream(&mut data); assert_eq!(data, [6, 245, 126, 124, 180, 146, 37]); // seek to the keystream beginning and apply it again to the `data` (decrypt) cipher.seek(0); cipher.apply_keystream(&mut data); assert_eq!(data, [1, 2, 3, 4, 5, 6, 7]);
Re-exports
pub use stream_cipher; |
Structs
Ctr128 | CTR mode of operation for 128-bit block ciphers |